CESS 选择 Substats,为用户提供区块链浏览器的最佳体验
举例来说,当您在使用 CESS Network 上的 DeShare 进行了文件的上传和存储,您能通过 CESS 的区块链浏览器看到更详细的数据和记录。
CESS 区块链浏览器:https://substats.cess.cloud/
CESS 为何选择 Substats
Substats 是一个获得波卡 Grant 的轻量级区块链浏览器。轻量级一方面指的是 Substats 优化了访问速度;另一方面则是 Substats 对开发者和用户更为友好,具体表现在 Substats 根据大多数用户的使用习惯以及大多数开发者的需求,对相应功能进行了优化。
CESS 选择 Substats 开发区块链浏览器,也是看到了 Substats 对于用户体验的优化。当前,Polkadot 生态最具影响力的区块浏览器是 Polkadot 原生浏览器。它提供了一个功能全面的区块浏览器,任何基于 Substrate 搭建的区块链网络都可以申请接入,并且支持多链之间的一键切换,在区块链浏览器开发之初也是 CESS 的首要选项。
然而,功能的庞大是把双刃剑,大而全的背后也有对性能的牺牲:如果交互的数据量臃肿,必然导致网络延迟高。对于普通用户来说,检索交易、查询钱包地址余额、查看网络基础状态等查询类场景,更多的实际需要是快速而不是全面。为了让 CESS 的用户能够在使用区块链浏览器时拥有更快速的体验,能够更高效地查询到相应的数据信息,CESS 选择了 Substats 作为区块链开发框架。
不仅是用户体验,从开发角度来看,Substats 与 Polkadot 原生浏览器不同,Substats 提供轻量化的组件降低对网络的依赖,提供自定义的数据展示功能。并且支持搭建后台与数据库服务来扩展更多的数据处理能力。同时也根据大多数用户的使用习惯以及大多数开发者的需求,增加了更多的展示图表。
Substats 优势一览
Substats 对各流程都进行了优化,旨在为开发者减少不必要的工作量,提升效率。例如,支持自定义数据获取;通过缓存队列实现了数据的读写分离;支持多种类型的获取数据方式:全节点的 RPC 通信、对等节点的 P2P 协议等。相比于其他波卡生态的区块链浏览器,Substats 提供了以下一系列开发者友好的特性:
链上数据的缓存和检索
相比于 Polkadot.js App 直接从链上节点获取大量数据,Substats 会缓存链上数据,并为用户提供稳定灵活的数据检索服务,极大提高检索的速度和灵活性。
数据处理模块
Substats 在用户与区块链网络中间搭建了加工站,其包含缓存(数据库)层和计算(数据处理)层。缓存层负责将链上数据拉取至本地数据库进行存储。计算层负责加工数据库中的链上数据,使其能够组合成对用户而言更有含义的数据,比如历史数据统计、全网算力排名等。这一设计的理念是对数据进行预处理加工,而不是将庞大复杂的链上数据全盘显示出来。我们希望让用户可以更直观、快速地找到他们感兴趣的数据。除此之外,Substats 也允许开发者扩展更多的统计数据和图表。
模块化的 UI 组件
Substats 将各个 UI 组件进行了模块化设计,各个组件之间没有互相依赖。开发者可以避免繁琐的代码开发和 UI 设计,轻松构建定制浏览器的视觉呈现。
更低的开发成本
Substats 仅需配置少量配置文件就能实现一键部署和启动。这些针对技术细节的改进设计,大幅度降低了开发的时间成本。
开源与安全性
Substats 提供了完全开源的代码,不包含后台托管与运维服务。所有服务由项目方来部署与运维,避免了信任成本。
Substats 的实现原理
1.节点服务同步区块链网络的区块数据。这里节点服务包括网络的全节点、第三方数据检索服务等。
2. 数据爬取模块从区块链节点那获取区块数据。Substats 支持全节点、P2P 节点以及本地数据库等类型的节点服务对接,同时支持自定义数据读取接口。
3. 将从节点服务爬取而来的区块数据写入缓冲管道。缓冲管道用于分离爬取数据与解析数据过程,同时支持数据完整性检查与异常处理。
4. 将区块数据从缓冲管道中取出并有序送入解析器。
5. 解析器对区块数据进行解析,并及时写入数据库。解析过程通过并发来加速。
6. 对于通用区块数据,Substats 提供了可用的数据库表结构,使得开发者能够开箱即用。而对于定制 Pallet 的数据来说,需要开发者定义相关表结构。
7. 前端组件通过 HTTP API 定期读取数据库中的相关数据来渲染 web 页面。
和 CESS 一起选择 Substats
Substats 在功能的和性能设计方面,更加贴合普通用户对速度和交互体验的需求。如果您正在为项目团队在寻找一个区块链浏览器开发框架,和 CESS 一样关注用户的体验和需求,Substats 将会是一个不错的选择。
了解 Substats 更多信息,请访问:https://github.com/CESSProject/substats/blob/master/README.md